Applying enhancements to visual content

ABSTRACT

In a computer system having originating software configured to provide visual content for display on a display screen and enhancement software configured to apply enhancements to the visual content for display on the display screen, the visual content may be magnified, via the enhancement software, to a magnification level different from a size at which the visual content is provided by the originating software. 
     In response to an instruction to change the magnification level, the magnification level to which the visual content is magnified via the enhancement software may be changed, and one or more enhancements, other than magnification, applied to the visual content via the enhancement software may also be changed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims a priority benefit, under 35 U.S.C. §119(e), to U.S. Provisional Application No. 61/697,054, entitled “Enhanced Accessibility Technologies,” filed Sep. 5, 2012, under attorney docket no. A0944.70003US00, which is incorporated herein by reference in its entirety.

BACKGROUND

With regard to computer systems, “accessibility” refers to the extent to which a computer resource (e.g., hardware, software applications, output content, etc.) is usable by people of all abilities and disabilities. In particular, a focus of recent effort has been on making computer content accessible to users with visual impairments. Accessibility Technology (AT) software applications, such as screen magnifiers and screen readers, have been and are continuing to be developed to provide enhancements to visual content on computer displays to make the visual content easier for visually impaired users to consume.

Some AT applications provide multiple options for enhancements that a visually impaired user could select to be applied to visual content to make it more accessible. One common type of enhancement is magnification, by which the visual content is enlarged to make it easier to see. Another type of enhancement is color enhancement, by which color of the visual content (e.g., background color, foreground color, reverse contrast, etc.) is adjusted to make the visual content easier to see. Other types of enhancement include pointer/cursor/focus enhancements, including various visual indicators of the current position of the mouse pointer, text cursor, input focus, etc. Yet another type of enhancement is text-to-speech or Braille display, by which visual content is converted to audio or tactile information that a (blind) user can consume.

An example of a typical way of making enhancement options available to a user is illustrated in FIG. 1. The AT software application presents a toolbar 10 on the display screen of the computer system (e.g., as a window on the computer desktop, which can be viewed alongside other windows of other software applications). Panel 20 of toolbar 10 presents user interface elements allowing the user to identify and adjust the current magnification level. Display/input field 22 displays the current magnification level (in this example, “2×,” in which visual content is enlarged by doubling its dimensions), and also allows the user to change to a different magnification level by selecting field 22 with the mouse and then typing in a different magnification level (e.g., “3×,” “4×,” etc.). Alternatively, the user can adjust the magnification level using buttons 24 and 26, which can be clicked with the mouse to increase and decrease the magnification level, respectively. Panel 30 of toolbar 10 presents user interface elements allowing the user to activate and adjust other enhancements, including (in this example) color, pointer, cursor, and font enhancements. Each of buttons 32, 34, 36 and 38 can be clicked with the mouse to cause a pop-up window or menu to be displayed with further user interface elements that can be used (e.g., through further mouse clicks) to activate each desired enhancement and adjust its settings individually.

SUMMARY

One type of embodiment is directed to a method in a computer system having originating software configured to provide visual content for display on a display screen and enhancement software configured to apply enhancements to the visual content for display on the display screen, the method comprising: magnifying the visual content, via the enhancement software, to a magnification level different from a size at which the visual content is provided by the originating software; and in response to an instruction to change the magnification level, changing the magnification level to which the visual content is magnified via the enhancement software, and changing one or more enhancements, other than magnification, applied to the visual content via the enhancement software.

Another type of embodiment is directed to at least one computer-readable storage medium storing computer-executable instructions that, when executed, perform a method in a computer system having originating software configured to provide visual content for display on a display screen and enhancement software configured to apply enhancements to the visual content for display on the display screen, the method comprising: magnifying the visual content, via the enhancement software, to a magnification level different from a size at which the visual content is provided by the originating software; and in response to an instruction to change the magnification level, changing the magnification level to which the visual content is magnified via the enhancement software, and changing one or more enhancements, other than magnification, applied to the visual content via the enhancement software.

Another type of embodiment is directed to a computer system comprising at least one processor, and at least one storage medium storing originating software configured to provide visual content for display on a display screen, and storing processor-executable instructions that, when executed by the at least one processor, perform a method comprising: magnifying the visual content for display on the display screen, to a magnification level different from a size at which the visual content is provided by the originating software; and in response to an instruction to change the magnification level, changing the magnification level and changing one or more enhancements, other than magnification, applied to the visual content for display on the display screen.

BRIEF DESCRIPTION OF DRAWINGS

The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:

FIG. 1 illustrates a conventional user interface for providing access to enhancements for visual content;

FIG. 2 is a block diagram illustrating an exemplary operating environment for a computer system in accordance with some embodiments of the present invention;

FIGS. 3A-3C illustrate exemplary application of techniques in accordance with some embodiments of the present invention;

FIG. 4 is a flowchart illustrating an exemplary method in accordance with some embodiments of the present invention;

FIG. 5 is a flowchart illustrating another exemplary method in accordance with some embodiments of the present invention; and

FIG. 6 is a block diagram illustrating an exemplary computer system on which aspects of the present invention may be implemented.

DETAILED DESCRIPTION

The inventors have recognized that conventional ways of providing access to enhancements for visual content in computer systems, such as the example conventional user interface illustrated in FIG. 1, may be difficult for many users to use. For example, the fact that the user must activate and configure settings for each type of enhancement separately requires the user to know what enhancements and what settings he/she wants to use, as well as where to find those enhancements and those settings within the user interface. Many users may not know what enhancements are available or how they would be of benefit, and may not be adept at exploring the user interface to discover or experiment with the available options. The inventors have further recognized that many users may benefit from different enhancement settings at different magnification levels, but may not realize this, or may find it too onerous to change multiple user interface settings multiple times as they browse through content at different magnification levels.

The inventors have recognized that advantages over the foregoing conventional techniques may be realized through novel techniques that automatically apply settings for one or more other enhancements when the user specifies the magnification level to be applied to visual content for display in a computer system. The inventors have appreciated that in some embodiments, by tying one or more other enhancements to the magnification level, a user interface for applying the enhancements may be simplified and present fewer buttons, settings, etc., for a user to learn to use.

Accordingly, some embodiments described herein relate to techniques for applying enhancements to visual content in dependence upon the magnification level, which techniques may address one or more of the above-discussed shortcomings of traditional methods, and/or may provide one or more of the foregoing benefits. However, aspects of the invention are not limited to any of these benefits, and it should be appreciated that some embodiments may not provide any of the above-discussed benefits and/or may not address any of the above-discussed deficiencies that the inventors have recognized in conventional techniques.

In some embodiments, in response to an instruction to change the magnification level applied to visual content, one or more other enhancements may be changed automatically, in addition to changing the magnification level. In some embodiments, a particular enhancement may become activated at a particular magnification level, when it was not activated at another magnification level. Alternatively or additionally, in some embodiments a parameter of a particular enhancement may be varied in correlation with the magnification level. For example, in some embodiments an enhancement may be made stronger, more prominent, etc., when the magnification level is increased. As used herein, the term “magnification level” refers to a multiple of the original pixel size of onscreen content that is magnified. A single pixel from the original display, for example, would appear twice as large and would require 4 pixels to display at a 2× magnification level. For techniques that do not apply the same magnification to all of the content being enhanced, the magnification level refers to the maximum level of magnification applied to some content being enhanced. For example, in some embodiments, magnification may be applied preferentially to content that is deemed important (such as the main text of a document) while other less important content (such as menu bars, navigational controls, etc.) may be magnified to a lesser degree or may be left unmagnified or even made smaller. In such cases, the “magnification level” refers to the highest level of magnification applied (i.e., to the important content).

In some embodiments, a user interface for providing access to enhancements for visual content may include a single-input control, such as a slider, that allows the user to specify the magnification level along with the corresponding automatic settings for one or more other enhancements. In some embodiments, this control may replace a more extensive user interface having individual controls for individual enhancements. In other embodiments, such a more extensive user interface may also be provided as an alternative for users who wish to have access to it. In some embodiments, one or more enhancements may be tied to the magnification level and controlled via the single-input control, while one or more other enhancements may be provided via one or more different user interface elements, instead of being tied to the magnification level.

It should be appreciated that the foregoing description is by way of example only, and aspects of the invention are not limited to providing any or all of the above-described functionality, although some embodiments may provide some or all of the functionality described herein.

The aspects of the present invention described herein can be implemented in any of numerous ways, and are not limited to any particular implementation techniques. Thus, while examples of specific implementation techniques are described below, it should be appreciated that the examples are provided merely for purposes of illustration, and that other implementations are possible.

One illustrative application for the techniques described herein is for use in a computer system 100 operated by a (human) user 102. An exemplary operating environment for such a system is illustrated in FIG. 2. Computer system 100 may be implemented in any suitable form, as aspects of the invention are not limited in this respect. For example, computer system 100 may be implemented as a single stand-alone machine, or may be implemented by multiple distributed machines that share processing tasks in any suitable manner. Computer system 100 may be implemented as one or more computers; an example of a suitable computer is described below. In some embodiments, computer system 100 may include one or more tangible, non-transitory processor-readable storage devices storing processor-executable instructions, and one or more processors that execute the processor-executable instructions to perform the functions described herein. The storage devices may be implemented as computer-readable storage media (i.e., tangible, non-transitory computer-readable media) encoded with the processor-executable instructions; examples of suitable computer-readable storage media are discussed below.

Exemplary computer system 100 may receive input from user 102 via one or more input devices such as keyboard 106 and/or pointing device 108, and may provide output to user 102 via one or more output devices such as display screen 104. Any suitable type(s) of display screen, keyboard, pointing device, and/or other input and/or output device(s) may be used, as aspects of the invention are not limited in this respect. Display screen 104 may be any type of display component capable of presenting visual content to user 102, and need not be two-dimensional.

Input and/or output devices such as display screen 104, keyboard 106, and pointing device 108 need not be separate physical devices, but in some embodiments may be integrated in any suitable combination, such as in a touchscreen-type apparatus that combines display screen, keyboard, and/or pointing device functionality. In addition, while a single display screen, keyboard, and pointing device are referred to herein for simplicity, some embodiments may make use of multiple display screens, keyboards, and/or pointing devices to provide equivalent and/or similar functionality.

In the example depicted in FIG. 2, exemplary computer system 100 includes various output-producing components, such as web browser 110, AT application 114, and other applications 116. Each of these processing components of system 100 may be implemented in software, hardware, or a combination of software and hardware. Components implemented in software may comprise sets of processor-executable instructions that may be executed by the one or more processors of computer system 100 to perform the functionality described herein. Each of web browser 110, AT application 114, and other applications 116 may be implemented as a separate component of computer system 100 (e.g., implemented by hardware and/or software code that is independent and performs dedicated functions of the component), or any combination of these components may be integrated into a single component or a set of distributed components (e.g., hardware and/or software code that performs two or more of the functions described herein may be integrated, the performance of shared code may be distributed among two or more hardware modules, etc.). In addition, any one of web browser 110, AT application 114, and other applications 116 may be implemented as a set of multiple software and/or hardware components. Although the example operating environment of FIG. 2 depicts web browser 110, AT application 114, and other applications 116 implemented together on computer system 100, this is only an example; in other examples, any or all of the components may be implemented on one or more separate machines, or parts of any or all of the components may be implemented across multiple machines in a distributed fashion and/or in various combinations. It should be understood that any such component depicted in FIG. 2 is not limited to any particular software and/or hardware implementation and/or configuration.

While web browser 110 and AT application 114 are provided as examples of applications that may be run on computer system 100, it should be appreciated that aspects of the invention are not limited to the inclusion of either or both of web browser 110 and AT application 114. Furthermore, while AT application 114 is provided as a particular example of a component of computer system 100 (e.g., a software application) that may provide functionality described herein (e.g., to apply enhancements to visual content), it should be appreciated that aspects of the invention are not limited to being performed by an AT application. In particular, while providing enhancements designed to improve accessibility may be one beneficial exemplary use of the techniques described herein, some embodiments are not limited to accessibility technology, and the techniques described herein may be applied to any suitable type(s) of enhancements to visual content provided by any suitable type(s) of application and/or component.

In some embodiments, AT application 114 may be configured to operate (e.g., via execution of a set of instructions by the one or more processors of computer system 100) to apply enhancements to visual content that is provided for display on display screen 104 by AT application 114 itself and/or by other components such as web browser 110 and/or other applications 116 (including, for example, the operating system of computer system 100). For instance, in one particular example, web browser 110 may provide visual content (e.g., text, images, user interface elements, etc., included in a web page) for display on display screen 104 at a particular default size, and AT application 114 may process the visual content provided by web browser 110 to apply one or more enhancements (e.g., magnification and/or one or more other accessibility enhancements) to the visual content before it is displayed. In such embodiments in which a component (such as AT application 114 or a non-AT component configured to provide functionality described herein) operates to apply enhancements to visual content provided for display by another component (such as, for example, web browser 110, another application 116, an operating system of computer system 100, etc.), the component originally providing the visual content for display is referred to herein as the “originating” component, and the component applying the enhancements to the visual content provided by the originating component is referred to herein as the “enhancement” component.

It should be appreciated that in embodiments in which the functionality described herein is provided by AT application 114 (or a non-AT component configured to provide functionality described herein) running on computer system 100, the functionality may be performed with respect to visual content generated and/or otherwise provided by any suitable component(s) of computer system 100 (including visual content generated by AT application 114 itself), and computer system 100 need not include any particular other components such as web browser 110. In embodiments in which a web browser 110 is included in computer system 100, web browser 110 may be configured (e.g., programmed) to provide access to web pages by downloading a web page 122 from a web server 120, executing the code of web page 122 to render web page 122 visually, and displaying the rendered web page 122 on display screen 104.

In some embodiments, as discussed above, visual content provided by web browser 110, either as part of a rendered web page or as part of the browser tool itself (e.g., browser menu items, buttons on a browser toolbar, etc.), may be enhanced by AT application 114 (or a non-AT component of computer system 100 configured to provide functionality described herein) for display on display screen 104. Alternatively or additionally, in some embodiments web browser 110 may have its own AT module 112 (e.g., a set of instructions) configured to cause web browser 110 to operate (e.g., via execution of the instructions by the one or more processors of computer system 100) to apply enhancements to visual content in any of the manners described herein. In such embodiments, for example, web browser 110 (or suitable components of web browser 110 other than AT module 112) may function as originating software for the visual content, and AT module 112 may function as enhancement software with respect to that visual content. While AT module 112 is provided as one particular example of a suitable component for providing functionality described herein, it should be appreciated that some embodiments are not limited to accessibility applications, and a similar non-AT module could also be used.

Alternatively or additionally, in some embodiments visual content included in web page 122 may be enhanced by execution of AT code 124 (e.g., one or more instructions) embedded within web page 122 itself. In some embodiments, when web browser 110 executes the code of web page 122, including AT code 124, to render web page 122 for display on display screen 104, the execution of AT code 124 may cause web browser 110 to apply enhancements to visual content within the rendered web page in accordance with techniques described herein. In such embodiments, for example, suitable portions of web page 122 (e.g., as interpreted/executed by web browser 110), other than AT code 124, may function as originating software for the visual content, and AT code 124 (e.g., as interpreted/executed by web browser 110) may function as enhancement software with respect to that visual content. While AT code 124 is provided as one particular example of a suitable delivery mechanism for the functionality described herein, it should be appreciated that some embodiments are not limited to accessibility applications, and similar non-AT code could also be used.

In some embodiments, applying enhancements to visual content provided by any component of computer system 100 may involve downloading an AT resource 132 to computer system 100 from an AT server 130. For example, in some embodiments, AT application 114 and/or web browser 110 (e.g., as directed by instructions contained in AT module 112 and/or AT code 124) may query AT server 130 for enhancements to be applied to certain visual content, to certain web pages, etc., and/or for instructions as to how to apply enhancements (e.g., as to application of enhancements in accordance with techniques described herein). Thus, for example, AT resource 132 may comprise an indication of one or more enhancements to apply, an indication of one or more mappings of enhancements to visual content to implement, a script (e.g., a set of instructions) to execute, and/or any other suitable resource to enable functionality described herein. In some instances, AT resource 132 may function as enhancement software for visual content provided by other originating software. While AT server 130 and AT resource 132 are provided as particular examples for a suitable delivery mechanism for functionality described herein, it should be appreciated that some embodiments are not limited to accessibility applications, and similar non-AT resources could be used.

It should be appreciated from the foregoing that not all components illustrated in FIG. 2 are necessary to include in the same system to enable the functionality described herein. For example, functionality described herein could be implemented in a computer system having AT application 114 alone and/or in conjunction with AT resource 132; a computer system having web browser 110 in conjunction with AT module 112, AT application 114, and/or AT code 124 embedded in web page 122, with or without the use of AT resource 132; or a computer system having any combination of the above. It should be appreciated that the description with respect to FIG. 2 is merely exemplary, and aspects of the invention are not limited to any particular software configuration or delivery mechanism for the techniques described herein.

In some embodiments, as discussed above, one or more enhancements may be applied to visual content for display on a display screen in a computer system. For illustration, FIG. 3A shows an exemplary display screen 300 displaying visual content including a number of text input fields, a cursor 310, and a pointer 320. The text fields might represent, for example, portions of an address form included in a web page for the user to transmit address information to the web server. However, as discussed above, aspects of the invention are not limited to the context of web pages, and the functionality described herein may in some embodiments be provided with respect to visual content generated by computer system components other than a web browser (such as, for example, visual content provided to the display screen by the operating system).

On the exemplary display screen 300 of FIG. 3A, the text “John” has been typed into text input field 330, and cursor 310 is positioned after the “n” to indicate that the next text typed will be inserted at that position. Pointer 320 is located where it was last moved by user operation of the mouse (or other pointing device), and indicates the location at which a mouse click (or activation of another pointing device selection mechanism) will have an effect, if any. Also provided on exemplary display screen 300 is graphical slider 340, an example of a single-input control that may be provided (e.g., by the enhancement software) to allow the user to control the magnification level, and cause one or more other enhancement settings to automatically take effect in dependence upon the magnification level setting.

As used herein, the term “single-input control” refers to any suitable user interface element that allows for user control of the magnification level and causes corresponding automatic changes to one or more other enhancements, without requiring any additional input from the user other than the input to control the magnification level. For example, when the single-input control is a graphical slider such as slider 340, the user may specify the magnification level by dragging the slider with the mouse (or other input device used to control the slider), and in some embodiments one or more other enhancements may be changed in response to this user instruction to change the magnification level, without requiring any additional input from the user. In some embodiments, the single-input control may be labeled with particular magnification levels, or may provide any other suitable indicator to the user that an effect of using the control will be to change the magnification level, and/or may provide any other suitable indicator of the particular magnification level that will result from the user's operation of the control in a particular way. However, in other embodiments, the manner in which the control is presented to the user may not indicate that it is for purposes of magnification, or may provide any suitable indication that the control may have effects other than magnification. For example, in some embodiments the single-input control may be presented as a “see it better” control, or in any other suitable way as a control operable to increase accessibility of the visual content on the display screen in ways not limited to magnification. It should be appreciated that the foregoing description is provided merely for purposes of exemplary illustration, and aspects of the invention are not limited to any particular form of implementation of a single-input control.

In the example of FIG. 3A, slider 340 is currently set all the way to the left, and zero magnification is being applied to the visual content by the enhancement software. That is, the size of the visual content on display screen 300 in FIG. 3A is the size at which the visual content is provided by the originating software, and is unchanged by the enhancement software. FIG. 3B illustrates an example in which slider 340 has been moved one notch to the right. In this case, one effect of this setting on slider 340 is to set the magnification level applied by the enhancement software to 2×, enlarging the visual content by doubling its dimensions. In addition, other enhancements have been changed in response to the change in magnification level, in accordance with some embodiments of the present invention. In this example, a cursor enhancement has been activated; triangles 350 are now displayed to mark the current position of the cursor and make it easier for the user to locate. A pointer enhancement has also been activated; crosshairs 360 are now displayed to mark the current position of the pointer and make it easier for the user to locate and follow.

In the example illustrated in FIG. 3C, slider 340 has been moved another notch to the right. In this case, one effect of this setting on slider 340 is to change the magnification level applied by the enhancement software to 4×, enlarging the visual content again by doubling its dimensions from what they were in FIG. 3B (making the visual content four times larger than it was in 1× in FIG. 3A). In addition, other enhancements have been changed in response to the change in magnification level. In this example, cursor enhancement 350 and pointer enhancement 360 have been made larger; in this particular example, they have more than doubled in size/thickness, although the magnification level has only doubled with respect to that in FIG. 3B. Also, another enhancement has now been activated; focus enhancement 370 outlines text input field 330, indicating that it currently has input focus, and that any text input provided via the keyboard will take effect in that field.

As can be seen from the example in FIGS. 3A-3C, in some embodiments the user (or a program instruction) may provide an instruction to change the magnification level applied by the enhancement software, and one or more changes may be made automatically to one or more other enhancements in response to the instruction to change the magnification level. As discussed above, references herein to an “instruction to change the magnification level” include user input via an interface element specifically designated as related to magnification, as well as user input via a more generic interface element such as a “see it better” slider having an observable effect on the magnification level.

Any suitable type(s) of enhancements may be applied to visual content in conjunction with magnification, as aspects of the invention are not limited in this respect. Non-limiting examples of suitable enhancements include color enhancements (e.g., background color change, foreground color change, contrast change, etc.), cursor enhancements (e.g., circles, triangles, colors, etc., applied to the cursor), pointer enhancements (e.g., circles, crosshairs, colors, etc., applied to the pointer), focus enhancements (e.g., outlining around input fields, menu items, dialog options, toolbar controls, other controls, etc., having input focus), enhancement of a selected range of information (e.g., highlighted or otherwise selected text, selected spreadsheet cells, etc.), font enhancements (e.g., boldness), speech output (e.g., screen reading, text-to-speech for visual content that the user selects, navigates to, or hovers over with the pointer), tactile output (e.g., Braille output for visual content that the user selects, navigates to, or hovers over with the pointer), animation effects, etc.

In some embodiments, a different setting or set of settings may be applied to the available enhancements at one magnification level than at another magnification level. For example, in some embodiments, a setting for enhancements at a particular magnification level may have zero, one, or more of the other available enhancements activated at that magnification level, and the remaining enhancements not activated. At another magnification level, more, fewer, and/or different ones of the available enhancements may be activated. In one particular example, additional enhancements may be activated at increasing magnification levels. This was demonstrated in the example of FIGS. 3A-3C, in which the pointer and cursor enhancements became active at 2× magnification, while the focus enhancement did not become active until 4× magnification. Alternatively or additionally, in some embodiments one or more enhancements that are activated may have one or more parameters that may be automatically changed in correlation with the magnification level. For example, in some embodiments, one or more enhancements may become stronger, brighter, larger, thicker, more prominent, etc., as the magnification level increases. This was demonstrated in the example of FIGS. 3A-3C, in which the pointer and cursor enhancements became thicker and larger at 4× magnification than they were at 2× magnification. In some embodiments, the degree to which an enhancement parameter is changed in response to a magnification level change may be greater than the degree of change in the magnification level. This was demonstrated in the example of FIGS. 3A-3C, in which the pointer and cursor enhancements more than doubled in thickness/size in response to a mere doubling of the magnification level. In some embodiments, a mathematical equation may be established to determine the amount of change in an enhancement parameter that will result from a particular amount of change in the magnification level. However, this is not required, and in some embodiments the parameter settings for an enhancement, although correlated with the magnification level, may not be mathematically determined, but may be derived and/or specified in any other suitable way, such as in a look-up table.

The determination of which enhancements activate using which parameter settings at which magnification levels may be made in any suitable way, as aspects of the invention are not limited in this respect. In some embodiments, enhancement settings may differ for different computer systems, for visual content provided by different originating software applications, and/or for different users. In some embodiments, a particular user may specify (e.g., by inputting appropriate settings) one or more enhancement settings that the user desires to be automatically applied at one or more particular magnification levels. Alternatively or additionally, in some embodiments the enhancement software may be programmed with particular enhancement settings to automatically apply at particular magnification levels for particular users or types of users. Such settings may be determined in any suitable way, including by determining the statistical needs of one or more user groups at various magnification levels, such as by conducting surveys or monitoring typical user interaction with conventional enhancement settings to determine the statistical needs of one or more user groups.

It should be appreciated from the foregoing that one embodiment of the invention is directed to a method 400 for applying enhancements to visual content, as illustrated in FIG. 4. Method 400 may be performed, for example, by one or more components of a computer system 100, although other implementations are possible, as method 400 is not limited in this respect. Method 400 begins at act 410, at which visual content may be magnified. As discussed above, in some embodiments the visual content may be provided for display on a display screen of the computer system by originating software, and may be magnified by enhancement software to a magnification level different from the size at which it was provided by the originating software. At act 420, an instruction to change the magnification level may be received, e.g., from a user. At act 430, in response to the instruction to change the magnification level, the level to which the visual content is magnified via the enhancement software may be changed, and additionally one or more enhancements, other than magnification, that are applied to the visual content via the enhancement software may be changed.

It should be further appreciated from the foregoing that another embodiment of the invention is directed to a method 500 for applying enhancements to visual content, as illustrated in FIG. 5. Method 500 may be performed, for example, by one or more components of a computer system 100, although other implementations are possible, as method 500 is not limited in this respect. Method 500 begins at act 510, at which the enhancement software may register, for each available enhancement, an observer (i.e., a software component that monitors for and/or detects the occurrence of a particular event or set of events) for notifications of changes to the magnification level applied by the enhancement software. At act 520, these observers may monitor for any such change in the magnification level.

At act 530, a determination may be made as to whether the magnification level has been changed, e.g., by the user or by a program instruction. While the magnification level remains unchanged, method 500 may loop at act 520 to continue to monitor. When the magnification level is changed, a notification may be generated, and may be received by the registered observers. At act 540, each observer (e.g., via the observer's handler) may map the new magnification level (together with any relevant user-specific settings, application-specific settings and/or system-specific settings) to the appropriate settings (e.g., activation on or off, and/or parameter settings) for the observer's assigned enhancement. At act 550, the enhancement software may apply the new magnification level, as well as the enhancement settings determined by the registered observers for that magnification level, to the visual content for display on the display screen. Method 500 then loops back to act 520 to monitor for further changes to the magnification level.

It should be appreciated that the foregoing description is provided by way of example only, and other implementations are possible. For example, other mechanisms for reacting to changes in the magnification level may be used, including but not limited to polling to check for magnification level changes, or controlling the available enhancements from within the magnification code.

A computer system in accordance with the techniques described herein may take any suitable form, as aspects of the present invention are not limited in this respect. An illustrative implementation of a computer system 600 that may be used in connection with some embodiments of the present invention is shown in FIG. 6. One or more computer systems such as computer system 600 may be used to implement any of the functionality described above. The computer system 600 may include one or more processors 610 and one or more computer-readable storage media (i.e., tangible, non-transitory computer-readable media), e.g., volatile storage 620 and one or more non-volatile storage media 630, which may be formed of any suitable non-volatile data storage media. The processor 610 may control writing data to and reading data from the volatile storage 620 and/or the non-volatile storage device 630 in any suitable manner, as aspects of the present invention are not limited in this respect. To perform any of the functionality described herein, processor 610 may execute one or more instructions stored in one or more computer-readable storage media (e.g., volatile storage 620 and/or non-volatile storage 630), which may serve as tangible, non-transitory computer-readable media storing instructions for execution by the processor 610.

The above-described embodiments of the present invention can be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers. It should be appreciated that any component or collection of components that perform the functions described above can be generically considered as one or more controllers that control the above-discussed functions. The one or more controllers can be implemented in numerous ways, such as with dedicated hardware, or with general purpose hardware (e.g., one or more processors) that is programmed using microcode or software to perform the functions recited above.

It should be appreciated that a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.

In this respect, it should be appreciated that one implementation of embodiments of the present invention comprises at least one computer-readable storage medium (i.e., at least one tangible, non-transitory computer-readable medium, e.g., a computer memory (e.g., hard drive, flash memory, processor working memory, etc.), a floppy disk, an optical disc, a magnetic tape, or other tangible, non-transitory computer-readable medium) encoded with a computer program (i.e., a plurality of instructions), which, when executed on one or more processors, performs above-discussed functions of embodiments of the present invention. The computer-readable storage medium can be transportable such that the program stored thereon can be loaded onto any computer resource to implement aspects of the present invention discussed herein. In addition, it should be appreciated that the reference to a computer program which, when executed, performs above-discussed functions, is not limited to an application program running on a host computer. Rather, the term “computer program” is used herein in a generic sense to reference any type of computer code (e.g., software or microcode) that can be employed to program one or more processors to implement above-discussed aspects of the present invention.

The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof, is meant to encompass the items listed thereafter and additional items. Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed. Ordinal terms are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term), to distinguish the claim elements.

Having described several embodiments of the invention in detail, various modifications and improvements will readily occur to those skilled in the art. Such modifications and improvements are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description is by way of example only, and is not intended as limiting. The invention is limited only as defined by the following claims and the equivalents thereto. 

What is claimed is:
 1. In a computer system having originating software configured to provide visual content for display on a display screen and enhancement software configured to apply enhancements to the visual content for display on the display screen, a method comprising: magnifying the visual content, via the enhancement software, to a magnification level different from a size at which the visual content is provided by the originating software; and in response to an instruction to change the magnification level, changing the magnification level to which the visual content is magnified via the enhancement software, and changing one or more enhancements, other than magnification, applied to the visual content via the enhancement software.
 2. The method of claim 1, further comprising: in response to an instruction to magnify the visual content to a first magnification level, applying a first setting to one or more enhancements other than magnification; and in response to an instruction to magnify the visual content to a second magnification level different from the first magnification level, applying a second setting different from the first setting to the one or more enhancements.
 3. The method of claim 1, further comprising: in response to an instruction from a first user to change the magnification level, applying a first setting to one or more enhancements other than magnification; and in response to an instruction from a second user to change the magnification level, applying a second setting different from the first setting to the one or more enhancements.
 4. The method of claim 1, wherein changing the one or more enhancements comprises activating an enhancement when the magnification level is increased.
 5. The method of claim 1, wherein changing the one or more enhancements comprises changing a parameter of an activated enhancement in correlation with an amount by which the magnification level is changed.
 6. The method of claim 1, further comprising providing a single-input control for user specification of the magnification level with automatic corresponding change to the one or more enhancements.
 7. The method of claim 1, wherein the single-input control is a graphical slider.
 8. The method of claim 1, wherein the one or more enhancements are selected from the group consisting of: color enhancements, cursor enhancements, pointer enhancements, focus enhancements, speech output and tactile output.
 9. At least one computer-readable storage medium storing computer-executable instructions that, when executed, perform a method in a computer system having originating software configured to provide visual content for display on a display screen and enhancement software configured to apply enhancements to the visual content for display on the display screen, the method comprising: magnifying the visual content, via the enhancement software, to a magnification level different from a size at which the visual content is provided by the originating software; and in response to an instruction to change the magnification level, changing the magnification level to which the visual content is magnified via the enhancement software, and changing one or more enhancements, other than magnification, applied to the visual content via the enhancement software.
 10. The at least one computer-readable storage medium of claim 9, wherein the method further comprises: in response to an instruction to magnify the visual content to a first magnification level, applying a first setting to one or more enhancements other than magnification; and in response to an instruction to magnify the visual content to a second magnification level different from the first magnification level, applying a second setting different from the first setting to the one or more enhancements.
 11. The at least one computer-readable storage medium of claim 9, wherein the method further comprises: in response to an instruction from a first user to change the magnification level, applying a first setting to one or more enhancements other than magnification; and in response to an instruction from a second user to change the magnification level, applying a second setting different from the first setting to the one or more enhancements.
 12. The at least one computer-readable storage medium of claim 9, wherein changing the one or more enhancements comprises activating an enhancement when the magnification level is increased.
 13. The at least one computer-readable storage medium of claim 9, wherein changing the one or more enhancements comprises changing a parameter of an activated enhancement in correlation with an amount by which the magnification level is changed.
 14. The at least one computer-readable storage medium of claim 9, wherein the method further comprises providing a single-input control for user specification of the magnification level with automatic corresponding change to the one or more enhancements.
 15. The at least one computer-readable storage medium of claim 9, wherein the single-input control is a graphical slider.
 16. The at least one computer-readable storage medium of claim 9, wherein the one or more enhancements are selected from the group consisting of: color enhancements, cursor enhancements, pointer enhancements, focus enhancements, speech output and tactile output.
 17. A computer system comprising: at least one processor; and at least one storage medium storing originating software configured to provide visual content for display on a display screen, and storing processor-executable instructions that, when executed by the at least one processor, perform a method comprising: magnifying the visual content for display on the display screen, to a magnification level different from a size at which the visual content is provided by the originating software; and in response to an instruction to change the magnification level, changing the magnification level and changing one or more enhancements, other than magnification, applied to the visual content for display on the display screen.
 18. The computer system of claim 17, wherein the method further comprises: in response to an instruction to magnify the visual content to a first magnification level, applying a first setting to one or more enhancements other than magnification; and in response to an instruction to magnify the visual content to a second magnification level different from the first magnification level, applying a second setting different from the first setting to the one or more enhancements.
 19. The computer system of claim 17, wherein the method further comprises: in response to an instruction from a first user to change the magnification level, applying a first setting to one or more enhancements other than magnification; and in response to an instruction from a second user to change the magnification level, applying a second setting different from the first setting to the one or more enhancements.
 20. The computer system of claim 17, wherein changing the one or more enhancements comprises activating an enhancement when the magnification level is increased.
 21. The computer system of claim 17, wherein changing the one or more enhancements comprises changing a parameter of an activated enhancement in correlation with an amount by which the magnification level is changed.
 22. The computer system of claim 17, wherein the method further comprises providing a single-input control for user specification of the magnification level with automatic corresponding change to the one or more enhancements.
 23. The computer system of claim 17, wherein the single-input control is a graphical slider.
 24. The computer system of claim 17, wherein the one or more enhancements are selected from the group consisting of: color enhancements, cursor enhancements, pointer enhancements, focus enhancements, speech output and tactile output. 